<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<!-- 

创建自定义迭代器：创建一个对象，实现一个迭代器接口，使其可以使用 for...of 循环遍
历。例如，创建一个迭代器对象，用于遍历数组中的奇数。


-->
<script>
    function makeIterator(arr) {
        let i = 0;
        return {
            next() {
                if (i < arr.length) {
                    while (i < arr.length && arr[i] % 2 === 0) {
                        i++;
                    }
                    if (i < arr.length) {
                        return { value: arr[i++], done: false };
                    } else {
                        return { done: true };
                    }
                } else {
                    return { done: true };
                }
            }
        }
    }
    var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    var it = {
        arr: arr,
        [Symbol.iterator]() {
            return makeIterator(this.arr)
        }
    }
    for (var item of it) {
        console.log(item)
    }

</script>

</html>